Transformer un tableau en javascript

Prenons l’exemple d’un tableau contenant des renseignements sur des animaux :

var animaux = [
{nom: "Jeannot", espece: "lapin"},
{nom: "Rantanplan", espece: "chien"},
{nom: "Milou", espece: "chien"},
{nom: "Nemo", espece: "poisson"},
{nom: "Duchesse", espece: "chat"},
{nom: "Samy", espece: "poisson"}
];

Le problème : Transformer ce tableau d’objets en un tableau synthétisant chaque objet dans une chaîne de caractère.

Solution 1 : En utilisant la programmation impérative :

var phrases = [];
for (var i = 0; i < animaux.length; i += 1) {
phrases.push(animaux[i].nom + " est un " + animaux[i].espece + ".");
}
console.log(phrases);

// Résultat :
// [ 'Jeannot est un lapin.',
// 'Rantamplan est un chien.',
// 'Milou est un chien.',
// 'Nemo est un poisson.',
// 'Duchesse est un chat.',
// 'Samy est un poisson.' ]

Solution 2 : En utilisant la programmation fonctionnelle :

var creerPhrase = function (animal) {
return animal.nom + " est un " + animal.espece + ".";
};
var phrases = animaux.map(creerPhrase);

console.log(phrases);

// Résultat :
// [ 'Jeannot est un lapin.',
// 'Rantamplan est un chien.',
// 'Milou est un chien.',
// 'Nemo est un poisson.',
// 'Duchesse est un chat.',
// 'Samy est un poisson.' ]

Et encore plus redoutable avec l’avènement de ECMAScript 2015 :

const animaux = [
{nom: "Jeannot", espece: "lapin"},
{nom: "Rantamplan", espece: "chien"},
{nom: "Milou", espece: "chien"},
{nom: "Nemo", espece: "poisson"},
{nom: "Duchesse", espece: "chat"},
{nom: "Samy", espece: "poisson"}
]

const creerPhrase = o => o.nom + " est un " + o.espece + "."
const phrases = animaux.map(creerPhrase)

console.log(phrases)

// Résultat :
// [ 'Jeannot est un lapin.',
// 'Rantamplan est un chien.',
// 'Milou est un chien.',
// 'Nemo est un poisson.',
// 'Duchesse est un chat.',
// 'Samy est un poisson.' ]

 

 

 

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.